fix "Resolve conflicts" dialog not showing up
authorJyrki Gadinger <nilsding@nilsding.org>
Fri, 24 Jan 2025 09:50:51 +0000 (10:50 +0100)
committerMatthieu Gallien <matthieu.gallien@nextcloud.com>
Fri, 24 Jan 2025 14:06:16 +0000 (15:06 +0100)
commit 00b616ba9d92a492b0c4e5101b58fff6506591ef removed the call to
`QScopedPointer::take` as it's considered deprecated in Qt 6.1 and
advises to use `std::unique_ptr` with `release()` instead

--> replace `QScopedPointer` with `std::unique_ptr` and call its
`release()` method as part of the cast to `QQuickWindow*`

Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
src/gui/systray.cpp

index 3c28aca043d0955152a4665734e8065e0114cd47..8e45abe66b42be26caeb51a9f25707d7c386312a 100644 (file)
@@ -301,13 +301,13 @@ void Systray::createResolveConflictsDialog(const OCC::ActivityList &allConflicts
 
     // This call dialog gets deallocated on close conditions
     // by a call from the QML side to the destroyDialog slot
-    auto dialog = QScopedPointer(conflictsDialog->createWithInitialProperties(initialProperties));
+    auto dialog = std::unique_ptr<QObject>(conflictsDialog->createWithInitialProperties(initialProperties));
     if (!dialog) {
         return;
     }
     dialog->setParent(QGuiApplication::instance());
 
-    auto dialogWindow = qobject_cast<QQuickWindow*>(dialog.data());
+    auto dialogWindow = qobject_cast<QQuickWindow*>(dialog.release());
     if (!dialogWindow) {
         return;
     }